package com.zrrd.yt.product.client;

import com.zrrd.yt.common.result.Result;
import com.zrrd.yt.model.product.*;
import com.zrrd.yt.product.client.impl.ProductFeigClientImpl;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

@FeignClient(value = "service-product",fallback = ProductFeigClientImpl.class)
public interface ProductFeigClient {

    //获取sku基本信息（包含图片）
    @GetMapping("/api/product/inner/getSkuInfo/{skuId}")
    public SkuInfo getSkuInfo(@PathVariable("skuId") Long skuId);

    //获取sku分类信息（包含三个分类）
    @GetMapping("/api/product/inner/getCategoryView/{category3Id}")
    public BaseCategoryView getCategoryView(@PathVariable("category3Id") Long cayegory3Id);

    //获取sku价格
    @GetMapping("/api/product/inner/getSkuPrice/{skuId}")
    public BigDecimal getSkuPrice(@PathVariable("skuId") Long skuId);

    //获取销售属性（spu的销售属性以及属性值并且标记了sku选择的哪个）
    @GetMapping("/api/product/inner/getSpuSaleAttrListBySku/{spuId}/{skuId}")
    public List<SpuSaleAttr> getSpuSaleAttrListBySku(@PathVariable("spuId") Long spuId,
                                                     @PathVariable("skuId") Long skuId);

    //根据spuid查询sku销售属性值信息
    @GetMapping("/api/product/inner/getSkuSaleAttrValueBySpu/{spuId}")
    public Map getSkuSaleAttrValueBySpu(@PathVariable("spuId") Long spuId);

    //获取全部分类信息
    @GetMapping("/api/product/inner/getBaseCategoryList")
    public Result getBaseCategoryList();

    //根据品牌id查询品牌
    @GetMapping("/api/product/inner/getTrademark/{tmId}")
    public BaseTrademark getTrademark(@PathVariable("tmId") Long tmId);

    //根据skuid查询平台属性以及属性值
    @GetMapping("/api/product/inner/getBaseAttrInfo/{skuId}")
    public List<BaseAttrInfo> getBaseAttrInfo(@PathVariable("skuId") Long skuId);


}
